package com.xayy.health.mgt.service;

import cn.kawins.base.result.CheckResult;
import cn.kawins.mybatis.BaseService;
import com.github.pagehelper.PageInfo;
import com.xayy.health.mgt.model.CalculateModelTrain;
import com.xayy.health.mgt.model.ModelTrain;
import com.xayy.health.mgt.model.ModelTrainRecord;
import com.xayy.health.mgt.model.dto.ModelDto;

/**
 * @author zhangxa
 */
public interface ModelTrainRecordService extends BaseService<ModelTrainRecord> {

    /**
     * 模型训练集合信息列表分页
     *
     * @param modelDto 入参信息
     * @return 分页结果
     */
    PageInfo<ModelTrainRecord> pageList(ModelDto modelDto);

    /**
     * 事后诊断模型训练分割故障时间段
     *
     * @param modelTrain 入参信息
     */
    void handlingTimeToFailure(ModelTrain modelTrain);

    /**
     * 校验模型名称是否重复
     *
     * @param modelTrain 入参信息
     * @return 结果日志
     */
    CheckResult<Object> checkModelName(ModelTrain modelTrain);

    /**
     * 校验模型名称是否重复
     *
     * @param modelTrain 入参信息
     * @return 结果日志
     */
    CheckResult<Object> checkModelName(CalculateModelTrain modelTrain);

    /**
     * 获取模型准确度
     *
     * @param modelTrainRecord 模型训练记录
     * @return ResultBody
     */
    CheckResult<Object> selectInfo(ModelTrainRecord modelTrainRecord);

    /**
     * 删除模型任务
     *
     * @param modelTypeId 模型任务id
     * @return ResultBody
     */
    CheckResult<Object> deleteModelTaskById(Long modelTypeId);

    /**
     * 模型下拉列表
     *
     * @param modelDto 入参
     * @return ResultBody
     */
    CheckResult<Object> getModel(ModelDto modelDto);
}
